#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>

//1.不定参宏函数的使用
#define Log(fmt, ...) printf("[%s:%d]" fmt, __FILE__, __LINE__, ##__VA_ARGS__);

//2.不定参函数
void printnum(int count, ...)
{
    va_list ap;
    va_start(ap, count);//获取count下一个参数的起始地址
    for(int i = 0; i < count; i++)
    {
        int num = va_arg(ap, int);//把参数提取出来
        printf("param[%d]:%d\n", i, num);
    }
    va_end(ap);
}
void myprintf(const char* fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    //提取的时候不知道是什么格式的数据
    char* res;
    int ret = vasprintf(&res, fmt, ap);
    if(ret != -1)
    {
        printf("%s", res);
        free(res);
    }
    
}
int main()
{
    // Log("%s-%d\n", "zpb", 666);
    // Log("潮州第一天才\n");
    printnum(2, 77, 78);
    printnum(4,1,2,3,4,5);
    myprintf("%s-%d\n", "zpb", 666);

    return 0;
}